home *** CD-ROM | disk | FTP | other *** search
/ LG Super CD / LG Super CD.iso / bitpim / bitpim-0.62-setup.exe / {app} / bitpim.exe / ntpath.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2003-11-06  |  10.2 KB  |  412 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.3)
  3.  
  4. import os
  5. import stat
  6. import sys
  7. __all__ = [
  8.     'normcase',
  9.     'isabs',
  10.     'join',
  11.     'splitdrive',
  12.     'split',
  13.     'splitext',
  14.     'basename',
  15.     'dirname',
  16.     'commonprefix',
  17.     'getsize',
  18.     'getmtime',
  19.     'getatime',
  20.     'getctime',
  21.     'islink',
  22.     'exists',
  23.     'isdir',
  24.     'isfile',
  25.     'ismount',
  26.     'walk',
  27.     'expanduser',
  28.     'expandvars',
  29.     'normpath',
  30.     'abspath',
  31.     'splitunc',
  32.     'curdir',
  33.     'pardir',
  34.     'sep',
  35.     'pathsep',
  36.     'defpath',
  37.     'altsep',
  38.     'extsep',
  39.     'realpath',
  40.     'supports_unicode_filenames']
  41. curdir = '.'
  42. pardir = '..'
  43. extsep = '.'
  44. sep = '\\'
  45. pathsep = ';'
  46. altsep = '/'
  47. defpath = '.;C:\\bin'
  48. if 'ce' in sys.builtin_module_names:
  49.     defpath = '\\Windows'
  50. elif 'os2' in sys.builtin_module_names:
  51.     altsep = '/'
  52.  
  53.  
  54. def normcase(s):
  55.     return s.replace('/', '\\').lower()
  56.  
  57.  
  58. def isabs(s):
  59.     s = splitdrive(s)[1]
  60.     if s != '':
  61.         pass
  62.     return s[:1] in '/\\'
  63.  
  64.  
  65. def join(a, *p):
  66.     path = a
  67.     for b in p:
  68.         b_wins = 0
  69.         if path == '':
  70.             b_wins = 1
  71.         elif isabs(b):
  72.             if path[1:2] != ':' or b[1:2] == ':':
  73.                 b_wins = 1
  74.             elif len(path) > 3 and len(path) == 3 and path[-1] not in '/\\':
  75.                 b_wins = 1
  76.             
  77.         
  78.         if b_wins:
  79.             path = b
  80.             continue
  81.         if path[-1] in '/\\':
  82.             if b and b[0] in '/\\':
  83.                 path += b[1:]
  84.             else:
  85.                 path += b
  86.         b[0] in '/\\'
  87.         if path[-1] == ':':
  88.             path += b
  89.             continue
  90.         if b:
  91.             if b[0] in '/\\':
  92.                 path += b
  93.             else:
  94.                 path += '\\' + b
  95.         b[0] in '/\\'
  96.         path += '\\'
  97.     
  98.     return path
  99.  
  100.  
  101. def splitdrive(p):
  102.     if p[1:2] == ':':
  103.         return (p[0:2], p[2:])
  104.     
  105.     return ('', p)
  106.  
  107.  
  108. def splitunc(p):
  109.     if p[1:2] == ':':
  110.         return ('', p)
  111.     
  112.     firstTwo = p[0:2]
  113.     if firstTwo == '//' or firstTwo == '\\\\':
  114.         normp = normcase(p)
  115.         index = normp.find('\\', 2)
  116.         if index == -1:
  117.             return ('', p)
  118.         
  119.         index = normp.find('\\', index + 1)
  120.         if index == -1:
  121.             index = len(p)
  122.         
  123.         return (p[:index], p[index:])
  124.     
  125.     return ('', p)
  126.  
  127.  
  128. def split(p):
  129.     (d, p) = splitdrive(p)
  130.     i = len(p)
  131.     while i and p[i - 1] not in '/\\':
  132.         i = i - 1
  133.     (head, tail) = (p[:i], p[i:])
  134.     head2 = head
  135.     while head2 and head2[-1] in '/\\':
  136.         head2 = head2[:-1]
  137.     if not head2:
  138.         pass
  139.     head = head
  140.     return (d + head, tail)
  141.  
  142.  
  143. def splitext(p):
  144.     i = p.rfind('.')
  145.     if i <= max(p.rfind('/'), p.rfind('\\')):
  146.         return (p, '')
  147.     else:
  148.         return (p[:i], p[i:])
  149.  
  150.  
  151. def basename(p):
  152.     return split(p)[1]
  153.  
  154.  
  155. def dirname(p):
  156.     return split(p)[0]
  157.  
  158.  
  159. def commonprefix(m):
  160.     if not m:
  161.         return ''
  162.     
  163.     prefix = m[0]
  164.     for item in m:
  165.         for i in range(len(prefix)):
  166.             if prefix[:i + 1] != item[:i + 1]:
  167.                 prefix = prefix[:i]
  168.                 if i == 0:
  169.                     return ''
  170.                 
  171.                 break
  172.                 continue
  173.         
  174.     
  175.     return prefix
  176.  
  177.  
  178. def getsize(filename):
  179.     return os.stat(filename).st_size
  180.  
  181.  
  182. def getmtime(filename):
  183.     return os.stat(filename).st_mtime
  184.  
  185.  
  186. def getatime(filename):
  187.     return os.stat(filename).st_atime
  188.  
  189.  
  190. def getctime(filename):
  191.     return os.stat(filename).st_ctime
  192.  
  193.  
  194. def islink(path):
  195.     return False
  196.  
  197.  
  198. def exists(path):
  199.     
  200.     try:
  201.         st = os.stat(path)
  202.     except os.error:
  203.         return False
  204.  
  205.     return True
  206.  
  207.  
  208. def isdir(path):
  209.     
  210.     try:
  211.         st = os.stat(path)
  212.     except os.error:
  213.         return False
  214.  
  215.     return stat.S_ISDIR(st.st_mode)
  216.  
  217.  
  218. def isfile(path):
  219.     
  220.     try:
  221.         st = os.stat(path)
  222.     except os.error:
  223.         return False
  224.  
  225.     return stat.S_ISREG(st.st_mode)
  226.  
  227.  
  228. def ismount(path):
  229.     (unc, rest) = splitunc(path)
  230.     if unc:
  231.         return rest in ('', '/', '\\')
  232.     
  233.     p = splitdrive(path)[1]
  234.     if len(p) == 1:
  235.         pass
  236.     return p[0] in '/\\'
  237.  
  238.  
  239. def walk(top, func, arg):
  240.     
  241.     try:
  242.         names = os.listdir(top)
  243.     except os.error:
  244.         return None
  245.  
  246.     func(arg, top, names)
  247.     exceptions = ('.', '..')
  248.     for name in names:
  249.         if name not in exceptions:
  250.             name = join(top, name)
  251.             if isdir(name):
  252.                 walk(name, func, arg)
  253.             
  254.         isdir(name)
  255.     
  256.  
  257.  
  258. def expanduser(path):
  259.     if path[:1] != '~':
  260.         return path
  261.     
  262.     (i, n) = (1, len(path))
  263.     while i < n and path[i] not in '/\\':
  264.         i = i + 1
  265.     if i == 1:
  266.         if 'HOME' in os.environ:
  267.             userhome = os.environ['HOME']
  268.         elif not ('HOMEPATH' in os.environ):
  269.             return path
  270.         else:
  271.             
  272.             try:
  273.                 drive = os.environ['HOMEDRIVE']
  274.             except KeyError:
  275.                 drive = ''
  276.  
  277.             userhome = join(drive, os.environ['HOMEPATH'])
  278.     else:
  279.         return path
  280.     return userhome + path[i:]
  281.  
  282.  
  283. def expandvars(path):
  284.     if '$' not in path:
  285.         return path
  286.     
  287.     import string
  288.     varchars = string.ascii_letters + string.digits + '_-'
  289.     res = ''
  290.     index = 0
  291.     pathlen = len(path)
  292.     while index < pathlen:
  293.         c = path[index]
  294.         if c == "'":
  295.             path = path[index + 1:]
  296.             pathlen = len(path)
  297.             
  298.             try:
  299.                 index = path.index("'")
  300.                 res = res + "'" + path[:index + 1]
  301.             except ValueError:
  302.                 res = res + path
  303.                 index = pathlen - 1
  304.             except:
  305.                 None<EXCEPTION MATCH>ValueError
  306.             
  307.  
  308.         None<EXCEPTION MATCH>ValueError
  309.         if c == '$':
  310.             if path[index + 1:index + 2] == '$':
  311.                 res = res + c
  312.                 index = index + 1
  313.             elif path[index + 1:index + 2] == '{':
  314.                 path = path[index + 2:]
  315.                 pathlen = len(path)
  316.                 
  317.                 try:
  318.                     index = path.index('}')
  319.                     var = path[:index]
  320.                     if var in os.environ:
  321.                         res = res + os.environ[var]
  322.                 except ValueError:
  323.                     res = res + path
  324.                     index = pathlen - 1
  325.                 except:
  326.                     None<EXCEPTION MATCH>ValueError
  327.                 
  328.  
  329.             None<EXCEPTION MATCH>ValueError
  330.             var = ''
  331.             index = index + 1
  332.             c = path[index:index + 1]
  333.             while c != '' and c in varchars:
  334.                 var = var + c
  335.                 index = index + 1
  336.                 c = path[index:index + 1]
  337.             if var in os.environ:
  338.                 res = res + os.environ[var]
  339.             
  340.             if c != '':
  341.                 res = res + c
  342.             
  343.         else:
  344.             res = res + c
  345.         index = index + 1
  346.     return res
  347.  
  348.  
  349. def normpath(path):
  350.     path = path.replace('/', '\\')
  351.     (prefix, path) = splitdrive(path)
  352.     while path[:1] == '\\':
  353.         prefix = prefix + '\\'
  354.         path = path[1:]
  355.     comps = path.split('\\')
  356.     i = 0
  357.     while i < len(comps):
  358.         if comps[i] in ('.', ''):
  359.             del comps[i]
  360.             continue
  361.         if comps[i] == '..':
  362.             if i > 0 and comps[i - 1] != '..':
  363.                 del comps[i - 1:i + 1]
  364.                 i -= 1
  365.             elif i == 0 and prefix.endswith('\\'):
  366.                 del comps[i]
  367.             else:
  368.                 i += 1
  369.         prefix.endswith('\\')
  370.         i += 1
  371.     if not prefix and not comps:
  372.         comps.append('.')
  373.     
  374.     return prefix + '\\'.join(comps)
  375.  
  376.  
  377. def abspath(path):
  378.     global abspath
  379.     
  380.     try:
  381.         _getfullpathname = _getfullpathname
  382.         import nt
  383.     except ImportError:
  384.         
  385.         def _abspath(path):
  386.             if not isabs(path):
  387.                 path = join(os.getcwd(), path)
  388.             
  389.             return normpath(path)
  390.  
  391.         abspath = _abspath
  392.         return _abspath(path)
  393.  
  394.     if path:
  395.         
  396.         try:
  397.             path = _getfullpathname(path)
  398.         except WindowsError:
  399.             pass
  400.         except:
  401.             None<EXCEPTION MATCH>WindowsError
  402.         
  403.  
  404.     None<EXCEPTION MATCH>WindowsError
  405.     path = os.getcwd()
  406.     return normpath(path)
  407.  
  408. realpath = abspath
  409. if hasattr(sys, 'getwindowsversion'):
  410.     pass
  411. supports_unicode_filenames = sys.getwindowsversion()[3] >= 2
  412.